Redundant packet network architecture

ABSTRACT

A method of forward error control is disclosed in which a transmitter receives data from an input device and from it creates one or more original codewords that are transmitted onto each of two physically distinct telecommunications channels. The reason that two copies of the original codeword are transmitted to the receiver via physically distinct channels is to increase the robustness of the overall effective telecommunications channel between the transmitter and the receiver, and to minimize the elapsed time between when the transmitter transmits the original codeword and when receiver has a final estimate of the original codeword available for output. The illustrative embodiment comprises: transmitting a first copy of an original codeword from a transmitter to a receiver via a first point-to-point telecommunications channel; transmitting a second copy of the original codeword from the transmitter to the receiver via a second point-to-point telecommunications channel; receiving at the receiver a first estimate of the original codeword from the first point-to-point telecommunications channel; and constructing a final estimate of the original codeword based on the first estimate of the original codeword.

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application is related to U.S. patent application Ser. No.09/___,___, filed on the same day as this application and entitled“Forward-Error Control of Redundantly-Transmitted Codewords” (AttorneyDocket S. J. Chang 12), which application is incorporated by reference.

FIELD OF THE INVENTION

[0002] The present invention relates to telecommunications in general,and, more particularly, to forward error control in packet networks.

BACKGROUND OF THE INVENTION

[0003] The problem of dealing with transmission errors intelecommunications networks has been studied for many years. In general,the solutions for dealing with transmission errors fall into twoclasses: (i) forward error control, and (ii) automatic-repeat-request.

[0004] In accordance with forward error control, data is encoded inaccordance with an error-control coding scheme that increases thelikelihood that the receiver can detect and correct any errors thatmight occur during transmission.

[0005] In accordance with automatic-repeat-request, data is encoded inaccordance with an error-control coding scheme that that enables thereceiver to detect, but not correct, errors that occur duringtransmission. In accordance with automatic-repeat-request, when an erroris detected, the receiver transmits a message back to the transmitterrequesting that the data be re-transmitted. This cycle continues untilthe receiver believes that the data has been received without error.

[0006] Both forward error control and automatic-repeat-request haveadvantages and disadvantages. The advantage of forward error control isthat it avoids the temporal delay associated withautomatic-repeat-request. The advantage of automatic-repeat-request isthat its error-control coding schemes typically require a lower databit-to-parity bit ratio (ie., less redundancy), and, therefore, lessbandwidth in the communications channels.

[0007] There exist applications, however, where the prior art techniquesof forward error control and automatic-repeat-request areunsatisfactory. One of these applications is Internet telephony, whichis also known as Voice over Internet Protocol (“VoIP”). In Internettelephony, the temporal delay associated with automatic-repeat-requestcauses unsatisfactory interruptions in the preferably continuous flow ofspeech. Although this problem can generally be avoided by usingerror-correction coding schemes, error-correction schemes areineffective when packets containing voice data are lost or delayedduring transmission.

[0008] Therefore, the need exists for an improved technique for dealingwith transmission errors in telecommunications networks that isparticularly advantageous for Internet telephony applications.

SUMMARY OF THE INVENTION

[0009] Some embodiments of the present invention deal with transmissionerrors in telecommunications networks without some costs anddisadvantages associated with techniques in the prior art. Inparticular, the illustrative embodiment of the present inventionincorporates a forward error control mechanism that deals with lost,delayed, and corrupted packets.

[0010] In accordance with the illustrative embodiment of the presentinvention, a transmitter receives data from an input device and from itcreates one or more original codewords. For example, the transmitter canreceive audio data from a microphone and can convert that audio datainto one or more original codewords.

[0011] The transmitter then transmits a copy of the original codewordonto each of two wireline point-to-point telecommunications channels fordelivery to the intended receiver. Advantageously, the twotelecommunications channels are both logically and physically distinct.The reason that two copies of the original codeword are transmitted tothe receiver via physically distinct channels is to increase therobustness of the overall effective telecommunications channel betweenthe transmitter and the receiver, and to minimize the elapsed timebetween when the transmitter transmits the original codeword and whenreceiver has a final estimate of the original codeword available foroutput.

[0012] The illustrative embodiment comprises: transmitting a first copyof an original codeword from a transmitter to a receiver via a firstpoint-to-point telecommunications channel; transmitting a second copy ofthe original codeword from the transmitter to the receiver via a secondpoint-to-point telecommunications channel; receiving at the receiver afirst estimate of the original codeword from the first point-to-pointtelecommunications channel; and constructing a final estimate of theoriginal codeword based on the first estimate of the original codeword.

BRIEF DESCRIPTION OF THE DRAWINGS

[0013]FIG. 1 depicts a schematic diagram of a redundant packet networkin accordance with the illustrative embodiment of the present invention.

[0014]FIG. 2 depicts a flowchart that describes the operation andinteraction of the elements depicted in FIG. 1 in accordance with theillustrative embodiment of the present invention.

[0015]FIG. 3 depicts a flowchart of the detail of step 203-1, asdepicted in FIG. 2.

[0016]FIG. 4 depicts a circular queue with N records.

[0017]FIG. 5 depicts the circular queue of FIG. 4, the trailing_pointer,the leading_pointer, the window of admissibility, and the window ofinadmissibility.

[0018]FIG. 6 depicts a flowchart of the detail of step 204, as depictedin FIG. 2.

DETAILED DESCRIPTION

[0019]FIG. 1 depicts a schematic diagram of redundant packet network 100in accordance with the illustrative embodiment of the present invention.Redundant packet network 100 comprises: transmitter 101 and receiver 102connected by two logically and physically distinct point-to-pointtelecommunications channels. The first point-to-point telecommunicationschannel (hereinafter also called the “A-channel”) comprises: physicaltelecommunications path 110-1, packet switching network 103-1, andphysical telecommunications path 111-1. The second point-to-pointtelecommunications channel (hereinafter also called the “B-channel”)comprises: physical telecommunications path 110-2, packet switchingnetwork 103-2, and physical telecommunications path 111-2. The input totransmitter 101 is microphone 121, and the output from receiver 102 isspeaker 122.

[0020] In accordance with the illustrative embodiment of the presentinvention, each of the first point-to-point telecommunications channeland the second point-to-point telecommunications channel is a“point-to-point” telecommunications channel. For the purposes of thisspecification, a “point-to-point telecommunications channel” is definedas a conduit for carrying a signal from one entity (e.g., a transmitter,etc.) to another entity (e.g., a receiver, etc.) for which it isintended. Typically, the signals in a point-to-point telecommunicationschannel are explicitly associated with the address of the entity forwhich the signals are intended (e.g., an Internet Protocol packet'sdestination address, etc.). Furthermore, the signals in a point-to-pointtelecommunications channel are often explicitly associated with anindication of the point-to-point telecommunications channel in whichthey are carried (e.g., asynchronous transfer mode's virtual pathidentifier and virtual circuit identifier, etc.).

[0021] It will be understood by those skilled in the art that apoint-to-point telecommunications channel is not a point-to-multipoint(i.e., broadcast) telecommunications channel, which is a logical conduitfor carrying a signal from one entity (e.g., a transmitter, etc.) to aplurality of entities (e.g., a receiver, etc.). Typically, the signalsin a point-to-multipoint telecommunications channel are not explicitlyassociated with the address of the entity for which the signals areintended. Furthermore, the signals in a point-to-multipointtelecommunications channel are generally not explicitly associated withan indication of the point-to-multipoint telecommunications channel inwhich they are carried.

[0022] In accordance with the illustrative embodiment of the presentinvention, each point-to-point telecommunication channel comprises aseries of wireline (e.g. copper, optical fiber, etc.) telecommunicationslinks.

[0023]FIG. 2 depicts a flowchart that describes the operation andinteraction of the elements depicted in FIG. 1 in accordance with theillustrative embodiment of the present invention.

[0024] At step 201, transmitter 101 receives data from an input devicein well-known fashion and from it creates one or more originalcodewords. To do this, transmitter 101 creates one or more messageblocks, each of which comprises k arbitrary message bits, m₀, m₁, . . ., m_(k−1), based on the input data. For example, transmitter 101 canreceive audio data from microphone 121 and can convert that audio datainto one or more message blocks.

[0025] Each message block is then applied to an error-control codingscheme, in well-known fashion, to produce an n-bit codeword (whereinn<m) that is a valid codeword within the context of that error-controlcoding scheme. For the purposes of this specification, an “error-controlcoding scheme” is defined as a system for enabling the detection orcorrection of the corruption of one or more symbols in a codeword. As iswell-known to those skilled in the art, the n - m bits in the n-bitcodeword represent redundancy that enable valid codewords in anerror-control coding scheme to be distinguished from invalid codewords.

[0026] Advantageously, embodiments of the present invention use blockerror-control coding schemes (e.g., Hamming codes, cyclic codes,Bose-Chaudhuri-Hocquenghem codes, Reed-Solomon Codes, etc.) in contrastto convolutional error-control coding schemes (e.g., trellis coding,etc.) for reasons that will be clear to those skilled in the art afterreading this specification. The illustrative embodiment of the presentinvention uses a simple block error-control coding scheme to facilitatean understanding of the present invention,

[0027] The error-control coding scheme in accordance with theillustrative embodiment of the present invention comprises a 3-bitcodeword, which itself comprises 2 message bits and 1 parity bit. Table1 depicts the format of a codeword in accordance with the illustrativeembodiment. In particular: TABLE 1 Codeword Format c₀ c₁ c₂

[0028] Codeword bit c₀ equals message bit m₀, codeword bit c₁ equalsmessage bit m₁, and codeword bit c₂ is a parity bit that is chosen toforce the modulo 2 sum of c₀, c₁, and c₂ to be an even number (i.e.,even parity). As will be clear to those skilled in the art, thiserror-control coding scheme enables only single-bit error detection.Table 2 depicts a list of all eight (i.e., 2³) codewords in accordancewith the illustrative embodiment. TABLE 2 List of All Codewords c₀ c₁ c₂Valid Codeword in Scheme? Message Block 0 0 0 Yes m₀ = 0, m₁ = 0 0 0 1No — 0 1 0 No — 0 1 1 Yes m₀ = 0, m₁ = 1 1 0 0 No — 1 0 1 Yes m₀ = 1, m₁= 0 1 1 0 Yes m₀ = 1, m₁ = 1 1 1 1 No —

[0029] In some alternative embodiments of the present invention,transmitter 101 receives one or more codewords from another apparatus,which is not depicted in FIG. 1.

[0030] In accordance with the illustrative embodiment, each codeword isassociated with a serial number, herein called codeword_serial_number,that assists receiver 102 in:

[0031] 1. reassembling the received codewords in the proper order, and

[0032] b 2. distinguishing between codewords.

[0033] Advantageously, the codeword_serial_number is an n-bit numberbetween 0 and 2^(n)−1. Furthermore, serial numbers are assigned tooriginal codewords successively from 0 to infinite, mod 2^(n).Advantageously, n is based on the maximum tolerable latency, L, for acodeword to travel from transmitter 101 to receiver 102, and on thebandwidth, C, as measured in codewords per second, of eachpoint-to-point telecommunications channel between transmitter 101 andreceiver 102. In particular:

n≧└log₂2LC┘+1  (Eq. 1)

[0034] At step 202-1, transmitter 101 transmits a first copy of theoriginal codeword and its accompanying codeword_serial_number, via afirst output port, onto the first point-to-point telecommunicationschannel, via physical telecommunications channel 110-1, for delivery toreceiver 102 via packet switching network 103-1 and physicaltelecommunications channel 111-1. Physical telecommunications channel110-1 can be either dedicated or multiplexed with other traffic. It willbe clear to those skilled in the art how to implement step 202-2.

[0035] At step 202-2, transmitter 101 transmits a second copy of theoriginal codeword and its accompanying codeword_serial_number, via afirst output port, onto the second point-to-point telecommunicationschannel, via physical telecommunications channel 110-2 for delivery toreceiver 102 via packet switching network 103-2 and physicaltelecommunications channel 111-2. Physical telecommunications channel110-2 can be either dedicated or multiplexed with other traffic. It willbe clear to those skilled in the art how to implement step 203.Advantageously, the transmission of the first copy of the originalcodeword onto the first point-to-point telecommunications channel isconcurrent with the transmission of the second copy of the originalcodeword onto the second point-to-point telecommunications channel.

[0036] In accordance with the illustrative embodiment of the presentinvention, two copies of the original codeword are transmitted toreceiver 102 via different point-to-point telecommunications channelsto:

[0037] 1. increase the robustness of the overall effectivetelecommunications channel between transmitter 101 and receiver 102, and

[0038] 2. minimize the elapsed time between when transmitter 101transmits the original codeword and when receiver 101 has a finalestimate of the original codeword available for output. Althoughphysical telecommunications channel 111-1 and physicaltelecommunications channel 111-1 are advantageously physically distinct,packet switching network 103-1 and packet switching network 111-1 can beeither the one packet switching network or different packet switchingnetworks. When packet switching network 103-1 and packet switchingnetwork 111-1 are one packet switching network, it is still advantageousfor the first copy of the codeword and the second copy of the codewordto traverse different physical routes from transmitter 101 to receiver102.

[0039] It will be clear to those skilled in the art that step 202-1might occur before step 202-2, after step 202-2, or concurrently withstep 202-2. Advantageously, the transmission of the first copy of theoriginal codeword onto the first point-to-point telecommunicationschannel is concurrent with the transmission of the second copy of theoriginal codeword onto the second point-to-point telecommunicationschannel.

[0040] At step 203-1, receiver 102 receives, via a first input port, thefirst copy of the original codeword, or, more precisely, an estimate ofthe original codeword and its accompanying codeword_serial_number fromthe first point-to-point telecommunications channel. It is more accurateto consider what receiver 102 receives to be an estimate of the originalcodeword rather than a correct facsimile of the codeword because one ormore bits in the codeword might have been corrupted in transit.

[0041] At step 203-2, receiver 102 receives, via a second input port,the second copy of the original codeword, or, more precisely, anestimate of the original codeword and its accompanyingcodeword_serial_number from the second point-to-point telecommunicationschannel. Advantageously, the reception of the first copy of the originalcodeword from the first point-to-point telecommunications channel isconcurrent with the reception of the second copy of the originalcodeword from the second point-to-point telecommunications channel. Itwill be clear to those skilled in the art that step 203-1 might occurbefore step 203-2, after step 203-2, or concurrently with step 203-2.Furthermore, the reception of the reception of the second copy of theoriginal codeword occurs without a request from the receiver for thetransmission of the second copy of the original codeword.

[0042] Step 203-1 is described in detail with respect to FIG. 3, andstep 203-2 is analogous to step 203-1.

[0043] At step 301-1, as indicated above, receiver 102 receives anestimate of the original codeword and its accompanyingcodeword_serial_number from physical telecommunications channel 111-1(i.e., the A-channel). Although the estimate of the original codewordcan be corrupted in transit, in accordance with the illustrativeembodiment of the present invention, the codeword_serial_numberaccompanying the estimate of the original codeword cannot. It will beclear to those skilled in the art how to make and use embodiments of thepresent invention in which errors in the codeword_serial_number arecorrected with an error-control coding scheme.

[0044] At step 302-2, receiver 102 begins the process of determiningwhether the received codeword should be processed for output to speaker122. The first step in the process involves determining whether thereceived estimate of the original codeword should be queued forprocessing. Table 3 depicts a portion of an illustrative queue inaccordance with the illustrative embodiment. TABLE 3 Queue in Receiver102 for Holding Received Codewords Pending Construction of FinalEstimate of Original Codeword (N = 2″ − 1; trailing_pointer = 2;leading_pointer = j + 1) Code- word_(—) A-Channel B-Channel Serial_(—)Code- Code- Number Received? Valid? word Received? Valid? word 0 No N/AN/A No N/A N/A 1 No N/A N/A No N/A N/A 2 Yes Yes 001 Yes No 011 . . . .. . . . . . . . . . . . . . . . . j Yes No 001 Yes No 001 j + 1 No N/AN/A Yes No 010 j + 2 No N/A N/A No N/A N/A j + 3 No N/A N/A No N/A N/A .. . . . . . . . . . . . . . . . . . . . N − 3 No N/A N/A No N/A N/A N −2 No N/A N/A No N/A N/A N − 1 No N/A N/A No N/A N/A N No N/A N/A No N/AN/A

[0045] The queue advantageously comprises N rows, each of which uniquelycorresponds to a codeword_serial_number. The queue advantageously alsocomprises fields for codewords from both the A-channel and theB-channel, as well as an indication of whether the codeword from thatchannel has been received and whether it is a valid codeword in theerror-control coding scheme. As depicted in FIG. 4, the queue can beconceptualized as a circular queue in which the entry forcodeword_serial_number=0 follows that for codeword_serial_number=N.

[0046] In accordance with the illustrative embodiment of the presentinvention, the estimates of the codewords can arrive at receiver 102 outof order from which they were sent. In other words, although a firstcopy of an original codeword with codeword_serial_number=57 wastransmitted via the first point-to-point telecommunications channelbefore a first copy of an original codeword withcodeword_serial_number=58, the estimate of the original codeword withcodeword_serial_number =57 might arrive at receiver much later than theestimate of the original codeword with codeword_serial_number=58 andeven much later than the estimate of the original codeword withcodeword_serial_number=4753.

[0047] In accordance with the illustrative embodiment of the presentinvention, receiver 102 waits for a maximum length of time for lostcodewords and codewords that arrive after other codewords have arrivedthat were transmitted earlier. To cull out codewords that arrive toolate to be useful, and to ensure that receiver 102 is not thwarted bythe loss of a codeword, receiver 102 employs a “window of admissibility”for determining which received codewords are put into the queue andwhich are discarded. As depicted in FIG. 5, the window of admissibilityis defined as a range of codeword_serial_numbers that is bounded on thelower end by an n-bit pointer called the “tralling_pointer” and on theupper end by a value equal to the trailing_pointer plus L, the maximumtolerable latency as used above to determine an appropriate value for N.Therefore, codewords whose codeword_serial_number is within the windowof admissibility are stored in the queue, while those whosecodeword_serial_number is not, are not. The trailing_pointer isadvantageously an n-bit, mod 2^(n), counter with an initial value of 0.

[0048] Therefore, at step 302-1, receiver 102 determines whether thecodeword received at step 301-1 is within the window of admissibility.If the codeword_serial_number accompanying the codeword is within thewindow of admissibility, then control passes to step 303-1; otherwise,control passes to step 306-1 and the codeword is discarded. Given themodular nature of the codeword_serial_number (i.e., the fact thatcodeword_serial_number=0 comes after codeword_serial number=N), thefollowing algebraic expression determine whether the codeword receivedat step 301-1 is within the window of admissibility:

[0049] IF:

[0050] [(trailing_pointer+L>trailing_pointer) AND

[0051] [(codeword_serial_number<trailing_pointer) OR

[0052] (codeword_serial_number>trailing_pointer+L)]]

[0053] OR

[0054] [(trailing_pointer+L≦trailing_pointer) AND

[0055] (codeword_serial₁₃ number<trailing_pointer) AND

[0056] (codeword_serial_number>trailing_pointer+L)]

[0057] THEN:

[0058] // Codeword not within window of admissibility //

[0059] Go to step 204 and discard codeword;

[0060] ELSE:

[0061] // Codeword within window of admissibility //

[0062] Go to step 303-1 and prepare to store codeword in queue

[0063] at position codeword_serial_number.

[0064] It will be clear to those skilled in the art how to verify thelogical expression depicted above for determining whether the codewordreceived at step 301-1 is within the window of admissibility.

[0065] At step 303-1, receiver 102 determines whether the codewordreceived at step 301-1 is a valid codeword in the error-control codingscheme or not. It will be clear to those skilled in the art how todetermine this.

[0066] At step 304-1, receiver 102 populates the queue at the locationcodeword_serial_number, indicates that the codeword has been received,and indicates whether the codeword was a valid codeword in theerror-control coding scheme or not, in the appropriate columns. In otherwords, codewords from the first point-to-point telecommunicationschannel and ancillary information regarding those codewords go in thefields associated with the A-channel, and codewords from the secondpoint-to-point telecommunications channel and ancillary informationregarding those codewords go in the fields associated with theB-channel.

[0067] At step 305-1, receiver 102 determines whether the“leading_pointer” should be updated. The leading_pointer is an n-bit,mod 2^(n), counter with an initial value of 0, that indicates thecodeword_serial_number of the most recently transmitted codeword withinthe window of admissibility that has been received by receiver 102. Thepurpose of the leading pointer is provide a gauge for enabling receiver102 to determine what kind of latency receiver 102 is actuallyexperiencing. In other words, the difference between the leading_pointerand the trailing pointer is the actual latency, as measured incodewords, that receiver 102 is actually experiencing at any moment.When the codeword_serial_number of the codeword has been determined tobe within the window of admissibility, then receiver 102 can determineif the leading_pointer should be updated with the following expression:

[0068] IF:

[0069] (codeword_serial_number>leading_pointer) OR

[0070] (codeword_serial_number<trailing_pointer)

[0071] THEN:

[0072] // Leading_pointer should be updated //

[0073] Go to step 306-1 and update leading_pointer

[0074] At step 306-1, receiver 102 updates the leading_pointer bysetting it equal to the codeword_serial_number. From step 306-1, controlpasses to step 204, as depicted in FIG. 2.

[0075] At step 204, receiver 102 removes one or more codewords from thequeue for output. In accordance with the illustrative embodiment of thepresent invention, step 204 is performed after the reception of eachcodeword on either the first point-to-point telecommunications channelor the second point-to-point telecommunications channel. After eachcodeword arrives, receiver 102 must determine whether enough codewordshave arrived, in satisfactory condition, to construct the final estimateof one or more original codewords. FIG. 6 depicts the elements of step204 in detail.

[0076] At step 601, receiver 102 determines whether either the A-channelcodeword or the B-channel codeword in the queue at the position pointedto by the trailing_pointer has arrived and is it valid? This can bedetermined by inspecting Table 3. If either the A-channel codeword orthe B-channel codeword in the queue at the position pointed to by thetrailing_pointer has arrived and is valid, then control passes to step604; otherwise control passes to step 602.

[0077] At step 602, receiver 102 determines if both the A-channelcodeword and the B-channel codeword in the queue at the position pointedto by the trailing_pointer have arrived and are both of them invalid.This too can be determined by inspecting Table 3. If both the A-channelcodeword and the B-channel codeword in the queue at the position pointedto by the trailing_pointer have arrived and are both invalid, thencontrol passes to step 603; otherwise control passes to step 607.

[0078] At step 603, receiver 102 constructs a final estimate of originalcodeword based on both of the A-channel codeword and the B-channelcodeword in the queue at the position pointed to by thetrailing_pointer, even though they are both invalid. Advantageously,receiver 102 constructs a final estimate of the original codeword byselecting a valid codeword in the error-control coding scheme such thatthe Hamming distance between the final estimate of the original codewordand the A-channel estimate of the original codeword plus the Hammingdistance between the final estimate of the original codeword and theB-channel estimate of the original codeword is a minimum. This step istaught in detail in U.S. patent application Ser. No. 09/___,___, filedon the same day as this application and entitled “Forward-Error Controlof Redundantly-Transmitted Codewords” (Attorney Docket S. J. Chang 12),which application is incorporated by reference. From step 603, controlpasses to step 604.

[0079] At step 604, receiver 102 outputs the final estimate of theoriginal codeword, in well-known fashion. For example, when the originalcodeword represents audio data, receiver 102 might output the audio datato speaker 122. If control arrives at step 604 from step 603, the finalestimate of the original codeword is that constructed in step 603. Ifcontrol arrives at step 604 from step 601, then the final estimate ofthe original codeword is either the A-channel codeword or the B-channelcodeword in the queue at the position pointed to by the trailing_pointerwhich has arrived and is valid. From step 604, control passes to step605.

[0080] At step 605, receiver 102 resets or clears the queue at theposition pointed to by the trailing_pointer. From step 605, controlpasses to step 606.

[0081] At step 606, receiver 102 increments the trailing_pointer by one.From step 606, control passes back to step 601 to determine if theremore enough codewords have arrived, in satisfactory condition, toconstruct the final estimate of another original codeword.

[0082] At step 607, receiver 102 determines if the leading_pointer istoo far ahead of the trailing_pointer. In other words, if too much timehas elapsed since at least one valid codeword or two invalid codewordswith codeword_serial_number=trailing_pointer should have arrived. Thiscan be determined from the following expression:

[0083] IF:

[0084] leading_pointer>trailing_pointer+L

[0085] THEN:

[0086] // A codeword has been lost //

[0087] Go to step 608 and output that a codeword has been lost.

[0088] ELSE:

[0089] // Wait awhile to see if more codewords arrive //

[0090] Go to step 201.

[0091] At step 608, receiver 102 outputs an indication that a codewordwith codeword_serial_number=trailing_pointer has been lost. From step608, control passes to step 605.

[0092] It will be clear to those skilled in the art that someembodiments of the present invention are equally applicable to faultrecovery as well as to error correction. Furthermore, it will be clearto those skilled in the art that in some alternative embodiments of thepresent invention that codeword re-sequencing is not necessary. In otherwords, some alternative embodiments of the present invention need notre-order codewords that arrive out of order.

[0093] It is to be understood that the above-described embodiments aremerely illustrative of the present invention and that many variations ofthe above-described embodiments can be devised by those skilled in theart without departing from the scope of the invention. It is thereforeintended that such variations be included within the scope of thefollowing claims and their equivalents.

What is claimed is:
 1. A method comprising: transmitting a first copy ofan original codeword from a transmitter to a receiver via a firstpoint-to-point telecommunications channel; transmitting a second copy ofsaid original codeword from said transmitter to said receiver via asecond point-to-point telecommunications channel; receiving at saidreceiver a first estimate of said original codeword from said firstpoint-to-point telecommunications channel; and constructing a finalestimate of said original codeword based on said first estimate of saidoriginal codeword.
 2. The method of claim 1 further comprising:receiving at said receiver a second estimate of said original codewordfrom said second point-to-point telecommunications channel; andconstructing said final estimate of said original codeword based on saidfirst estimate of said original codeword and on said second estimate ofsaid original codeword.
 3. The method of claim 1 wherein said finalestimate of said original codeword is based solely on the earlier toarrive of: (i) said first estimate of said original codeword, and (ii)said second estimate of said original codeword.
 4. The method of claim 1wherein said original codeword is a valid codeword in an error-controlcoding scheme, and further comprising ensuring that said final estimateof said original codeword is a valid codeword in said error-controlcoding scheme.
 5. The method of claim 1 wherein said original codewordis a valid codeword in an error-control coding scheme, and wherein saidfinal estimate of said original codeword is based solely on the earlierto arrive of: (i) said first estimate of said original codeword,provided that said first estimate of said original codeword is a validcodeword in said error-control coding scheme, and (ii) said secondestimate of said original codeword, provided that said second estimateof said original codeword is a valid codeword in said error-controlcoding scheme.
 6. A telecommunications network comprising: a transmitterfor transmitting a first copy of an original codeword from a transmitterto a receiver via a first point-to-point telecommunications channel, andfor transmitting a second copy of said original codeword from saidtransmitter to said receiver via a second point-to-pointtelecommunications channel; and a receiver for receiving at saidreceiver a first estimate of said original codeword from said firstpoint-to-point telecommunications channel, and constructing a finalestimate of said original codeword based on said first estimate of saidoriginal codeword.
 7. The telecommunications network of claim 6 whereinsaid receiver is also for receiving at said receiver a second estimateof said original codeword from said second point-to-pointtelecommunications channel, and for constructing said final estimate ofsaid original codeword based on said first estimate of said originalcodeword and on said second estimate of said original codeword.
 8. Thetelecommunications network of claim 7 wherein said final estimate ofsaid original codeword is based solely on the earlier to arrive of: (i)said first estimate of said original codeword, and (ii) said secondestimate of said original codeword.
 9. The telecommunications network ofclaim 7 wherein said original codeword is a valid codeword in anerror-control coding scheme, and wherein said receiver is also forensuring that said final estimate of said original codeword is a validcodeword in said error-control coding scheme.
 10. The telecommunicationsnetwork of claim 7 wherein said original codeword is a valid codeword inan error-control coding scheme, and wherein said final estimate of saidoriginal codeword is based solely on the earlier to arrive of: (i) saidfirst estimate of said original codeword, provided that said firstestimate of said original codeword is a valid codeword in saiderror-control coding scheme, and (ii) said second estimate of saidoriginal codeword, provided that said second estimate of said originalcodeword is a valid codeword in said error-control coding scheme.
 11. Amethod comprising: transmitting a first copy of an original codewordfrom a transmitter to a receiver via a first point-to-pointtelecommunications channel; and transmitting a second copy of saidoriginal codeword from said transmitter to said receiver via a secondpoint-to-point telecommunications channel; wherein the transmission ofsaid first copy of said original codeword is concurrent with thetransmission of said second copy of said original codeword.
 12. Themethod of claim 11 wherein said original codeword is a valid codeword inan error-control coding scheme, and further comprising ensuring thatsaid final estimate of said original codeword is a valid codeword insaid error-control coding scheme.
 13. A transmitter comprising: a firstoutput port for transmitting a first copy of an original codeword from atransmitter to a receiver via a first point-to-point telecommunicationschannel; and a second output port for transmitting a second copy of saidoriginal codeword from said transmitter to said receiver via a secondpoint-to-point telecommunications channel; wherein the transmission ofsaid first copy of said original codeword is concurrent with thetransmission of said second copy of said original codeword.
 14. Thetransmitter of claim 13 wherein said original codeword is a validcodeword in an error-control coding scheme.
 15. A method comprising:receiving a first copy of an original codeword from a transmitter via afirst point-to-point telecommunications channel; and receiving a secondcopy of said original codeword from said transmitter via a secondpoint-to-point telecommunications channel; wherein the reception of saidfirst copy of said original codeword is concurrent with the reception ofsaid second copy of said original codeword.
 16. The method of claim 15wherein said original codeword is a valid codeword in an error-controlcoding scheme, and further comprising ensuring that said final estimateof said original codeword is a valid codeword in said error-controlcoding scheme.
 17. A receiver comprising: a first input port forreceiving a first copy of an original codeword from a transmitter via afirst point-to-point telecommunications channel; and a second input portfor receiving a second copy of said original codeword from saidtransmitter via a second point-to-point telecommunications channel;wherein the reception of said first copy of said original codeword isconcurrent with the reception of said second copy of said originalcodeword.
 18. The receiver of claim 17 wherein said original codeword isa valid codeword in an error-control coding scheme, and furthercomprising ensuring that said final estimate of said original codewordis a valid codeword in said error-control coding scheme.
 19. Atransmitter comprising: a first output port for transmitting a firstcopy of an original codeword from a transmitter to a receiver via afirst point-to-point telecommunications channel; and a second outputport for transmitting a second copy of said original codeword from saidtransmitter to said receiver via a second point-to-pointtelecommunications channel; wherein the transmission of said second copyof said original codeword occurs without a request from said receiverfor the transmission of said second copy of said original codeword. 20.A receiver comprising: a first input port for receiving a first copy ofan original codeword from a transmitter via a first point-to-pointtelecommunications channel; and a second input port for receiving asecond copy of said original codeword from said transmitter via a secondpoint-to-point telecommunications channel; wherein the reception of saidsecond copy of said original codeword occurs without a request from saidreceiver for the transmission of said second copy of said originalcodeword.